iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
自我挑戰組

遊戲中的冰山一角-網路連線系列 第 8

Day08-遊戲連線基礎(7)-時間Part 2

  • 分享至 

  • xImage
  •  

今天將會更深入探討Delta time來為了之後的遊戲網路有更好的認知,那就開始今天的主題吧!

無論你的遊戲是設定30FPS,60FPS或是144FPS,這些都是一秒鐘要完成的事而delta time的核心概念就是幀與幀之間的時間,所以30FPS的delta time就是1 / 30 = 0.033…,60FPS就是1 / 60 = 0.0166…以此類推,以上都是理想狀態下得到的數字,也是delta time的基本值,但現實卻是變化莫測。

舉個簡單的例子來將delta time的所有重點一次完整呈現。

在大多數情況下遊戲在執行相同的邏輯得到的結果必然是要一樣的,那如果今天要讓一個角色移動一公尺首先想想是要每秒移動一公尺還是每一幀移動一公尺呢?這答案顯而易見肯定是要每秒移動一公尺,因為如果大家的FPS設定的不一樣那有人直接走144有人只能走60那肯定是不對的。
https://ithelp.ithome.com.tw/upload/images/20220908/20151289FfUgI7cwJ0.png

接續上述問題,要怎麼實現每秒移動一公尺呢?上面有提到FPS與delta time的概念所以可以說我只要把0.033乘一公尺然後加30次或是0.0166乘一公尺加60次就能實現了嗎?這個說法只對了一半,因為事實上delta time並不會很固定尤其是在跑較大型的遊戲時,因此才會說這是理想狀態下得到的數字,實際上的delta time是不斷的在變化,所以正確的作法並不是去乘固定的delta time而是使用浮動的delta time,這才能正確的與現實生活同步,大家都在相同的時間下走了一公尺,及便某位玩家的設備不好,幀與幀相差的時間遠大於基本值也不需要擔心,因為大家都是用一秒的時間完成移動,只是該玩家的畫面比其他人還要不順暢罷了。
https://ithelp.ithome.com.tw/upload/images/20220908/20151289QdupCVa2k6.png

在介紹完基本的delta time後,有七八成的概念可以以此類推到遊戲的網路世界,下一章將介紹delta time與網路的關係。


上一篇
Day07-遊戲連線基礎(6)-時間Part 1
下一篇
Day09-遊戲連線基礎(8)-時間Part 3
系列文
遊戲中的冰山一角-網路連線30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言